import axios from 'axios'
import { getToken, removeUserInfo } from '.'
import { showFailToast } from 'vant'
import router from '@/router'
axios.defaults.baseURL = import.meta.env.VITE_BASE_URL
axios.defaults.timeout = 8000
axios.defaults.headers['content-type'] = 'application/x-www-form-urlencoded'

// 添加拦截器
axios.interceptors.request.use(function (config) {
  // 添加token
  if (getToken()) {
    // 判断请求方式
    if (config.method === 'post' || config.method=== 'put') {
      config.data = {
        ...config.data,
        token: getToken()
      }
    } else {
      config.params = {
        ...config.params,
        token: getToken()
      }
    }
  }
  return config;
}, function (error) {
  // Do something with request error
  return Promise.reject(error);
});

 // token校验
axios.interceptors.response.use(function (res) {
  // token过期的处理
  if (res.data.code === 2000) {
     // 清除用户相关缓存
     removeUserInfo()
    // 弹出错误提示
    showFailToast({
      message: '用户登录过期请重新登录',
      onClose() {
        router.replace('/login')
      },
    })
    // 去登录页
  }
  return res;
}, function (error) {
  return Promise.reject(error);
});

export default axios